package fachada;

import java.util.ArrayList;

import model.Curso;
import model.Postagem;
import model.Usuario;
import controller.ControladorCursos;
import controller.ControladorPostagem;
import controller.ControladorUsuario;

public class Fachada {

	private static Fachada fachada;
	private ControladorUsuario controladorUsuario;
	private ControladorPostagem controladorPostagem;
	private ControladorCursos controladorCursos;
	
	public Fachada() {
		controladorUsuario = new ControladorUsuario();
		controladorPostagem = new ControladorPostagem();
		controladorCursos = new ControladorCursos();
	}
	
	
	public static Fachada getInstance(){
		
		if(fachada == null){
			fachada = new Fachada();
		}
		return fachada;
	}
	
	public Usuario retornaUsuario(String login, String senha,
			String flagEncriptacao) {
		Usuario usuario = null;
		
		try {
			usuario = controladorUsuario.retornaUsuario(login, senha, flagEncriptacao);
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return usuario;
	}
	
	public ArrayList<Postagem> retornaUltimasNoticias(String login, String senha,
			String flagEncriptacao){
		
		ArrayList<Postagem> retorno = null;
		Usuario usuarioLogado = retornaUsuario(login, senha, flagEncriptacao);
		
		if(usuarioLogado!= null){
			try {
				retorno = controladorPostagem.retornaUltimasNoticias();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		
		return retorno;
	}


	public ArrayList<Curso> verificarCursos(String login, String senha,
			String flagEncriptacao) {
	
		ArrayList<Curso> retorno = null;
		Usuario usuarioLogado = retornaUsuario(login, senha, flagEncriptacao);
		
		if(usuarioLogado!= null){
			try {
				retorno = controladorCursos.retornaRelacaoCursos(usuarioLogado.getId());
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		
		return retorno;
	}


	
}
